package com.zy.service.bs.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.zy.dao.bs.GoodsTypeDao;
import com.zy.entity.enums.StatusEnum;
import com.zy.entity.bs.GoodsType;
import com.zy.pojo.query.bs.GoodsTypeQuery;
import com.zy.pojo.vos.common.PageVo;
import com.zy.service.base.impl.BaseServiceImpl;
import com.zy.service.bs.GoodsTypeService;
import com.zy.utils.DateUtil;

@Service("goodsTypeService")
public class GoodsTypeServiceImpl extends BaseServiceImpl<GoodsType> implements GoodsTypeService {

	@Autowired
	private GoodsTypeDao goodsTypeDao;

	@Override
	public PageVo pageGoodsType(GoodsTypeQuery goodsTypeQuery, Integer start, Integer limit) {
		return new PageVo(start, limit, this.goodsTypeDao.countGoodsType(goodsTypeQuery), this.goodsTypeDao.listGoodsType(goodsTypeQuery, start, limit));
	}

	@Override
	public void saveGoodsType(GoodsType goodsType) {
		long time = DateUtil.getTime();
		goodsType.setCreateTime(time);
		goodsType.setModifyTime(time);
		goodsType.setStatus(StatusEnum.NORMAL.getValue());
		this.goodsTypeDao.save(goodsType);
	}
	
	@Override
	public void updateGoodsType(GoodsType goodsType) {
		goodsType.setModifyTime(DateUtil.getTime());
		this.goodsTypeDao.updateByPrimaryKeySelective(goodsType);
	}

	@Override
	public void removeGoodsType(long id) {
		try {
			this.goodsTypeDao.removeByPrimaryKey(id);
		} catch (Exception e) {
			log.info(e.getMessage(),e);
			GoodsType goodsType = new GoodsType();
			goodsType.setId(id);
			goodsType.setModifyTime(DateUtil.getTime());
			goodsType.setStatus(StatusEnum.DELETE.getValue());
			this.goodsTypeDao.updateByPrimaryKeySelective(goodsType);
		}
	}

	@Override
	public void recover(long id) {
		GoodsType goodsType = new GoodsType();
		goodsType.setId(id);
		goodsType.setModifyTime(DateUtil.getTime());
		goodsType.setStatus(StatusEnum.NORMAL.getValue());
		this.goodsTypeDao.updateByPrimaryKeySelective(goodsType);
	}

}
